<?php

namespace RPPrincipal\UsuariosBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Security\Core\User\UserInterface;
use Doctrine\Common\Collections\ArrayCollection;
use Symfony\Component\Validator\Constraints as Assert;

/**
 * Usuarios
 *
 * @ORM\Table(name="usuario")
 * @ORM\Entity
 */
class Usuarios implements UserInterface {

    /**
     * @var integer
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     * @var string
     *
     * @ORM\Column(name="usuario", type="string", length=50)
     */
    private $usuario;

    /**
     * @var string
     *
     * @ORM\Column(name="password", type="string", length=255)
     */
    private $password;

    /**
     * @var string
     *
     * @ORM\Column(name="salt", type="string", length=255)
     */
    private $salt;

    /**
     * @var string
     *
     * @ORM\Column(name="nombre", type="string", length=255)
     */
    private $nombre;

    /**
     * @var string
     *
     * @ORM\Column(name="apellido", type="string", length=255)
     */
    private $apellido;

    /**
     * @var \Date
     *
     * @ORM\Column(name="fecha_alta", type="date")
     */
    private $fechaAlta;

    /**
     * @var boolean
     *
     * @ORM\Column(name="estado", type="boolean")
     */
    private $estado;

//    /** @ORM\OneToMany(targetEntity="RPPrincipal\AuditoriaBundle\Entity\Auditoria", mappedBy="usuarios", cascade={"persist", "remove"}) 
//     *  @Assert\Valid()
//     */
//    protected $auditoria;

//    private $role;
    function eraseCredentials() {
        
    }

//    function setRoles($key) {
//        if ($key == 1) {
//            $this->role = array("ROLE_SUPER_ADMIN");
//        } elseif ($key == 2) {
//            $this->role = array("ROLE_USUARIO");
//        }
////        $this->role=array(
////            1=> 'ROLE_SUPER_ADMIN',
////            2=> 'ROLE_USUARIO',);
//        //return array('ROLE_USUARIO');
////        return array ($this->getRoles());
//    }

        
    function getRoles() {
        return array('ROLE_USUARIO');
//        return array($this->role);
//        return $this->role->toArray();
    }

    function getUsername() {
        return $this->getUsuario();
    }

    public function __construct() {
        $this->role = new \Doctrine\Common\Collections\ArrayCollection();
    }

    /**
     * Get id
     *
     * @return integer 
     */
    public function getId() {
        return $this->id;
    }

    /**
     * Set usuario
     *
     * @param string $usuario
     * @return Usuarios
     */
    public function setUsuario($usuario) {
        $this->usuario = $usuario;

        return $this;
    }

    /**
     * Get usuario
     *
     * @return string 
     */
    public function getUsuario() {
        return $this->usuario;
    }

    /**
     * Set password
     *
     * @param string $password
     * @return Usuarios
     */
    public function setPassword($password) {
        $this->password = $password;

        return $this;
    }

    /**
     * Get password
     *
     * @return string 
     */
    public function getPassword() {
        return $this->password;
    }

    /**
     * Set salt
     *
     * @param string $salt
     * @return Usuarios
     */
    public function setSalt($salt) {
        $this->salt = $salt;

        return $this;
    }

    /**
     * Get salt
     *
     * @return string 
     */
    public function getSalt() {
        //return $this->salt;
        return '';
    }

    /**
     * Set nombre
     *
     * @param string $nombre
     * @return Usuarios
     */
    public function setNombre($nombre) {
        $this->nombre = $nombre;

        return $this;
    }

    /**
     * Get nombre
     *
     * @return string 
     */
    public function getNombre() {
        return $this->nombre;
    }

    /**
     * Set apellido
     *
     * @param string $apellido
     * @return Usuarios
     */
    public function setApellido($apellido) {
        $this->apellido = $apellido;

        return $this;
    }

    /**
     * Get apellido
     *
     * @return string 
     */
    public function getApellido() {
        return $this->apellido;
    }

    /**
     * Set fechaAlta
     *
     * @param \DateTime $fechaAlta
     * @return Usuarios
     */
    public function setFechaAlta($fechaAlta) {
        $this->fechaAlta = $fechaAlta;

        return $this;
    }

    /**
     * Get fechaAlta
     *
     * @return \DateTime 
     */
    public function getFechaAlta() {
        return $this->fechaAlta;
    }

    /**
     * Set estado
     *
     * @param boolean $estado
     * @return Usuarios
     */
    public function setEstado($estado) {
        $this->estado = $estado;

        return $this;
    }

    /**
     * Get estado
     *
     * @return boolean 
     */
    public function getEstado() {
        return $this->estado;
    }

    public function __toString() {
        return $this->usuario;
    }

    /**
     * Add auditoria
     *
     * @param \RPPrincipal\AuditoriaBundle\Entity\Auditoria $auditoria
     * @return Usuarios
     */
    public function addAuditorium(\RPPrincipal\AuditoriaBundle\Entity\Auditoria $auditoria) {
        $this->auditoria[] = $auditoria;

        return $this;
    }

    /**
     * Remove auditoria
     *
     * @param \RPPrincipal\AuditoriaBundle\Entity\Auditoria $auditoria
     */
    public function removeAuditorium(\RPPrincipal\AuditoriaBundle\Entity\Auditoria $auditoria) {
        $this->auditoria->removeElement($auditoria);
    }

    /**
     * Get auditoria
     *
     * @return \Doctrine\Common\Collections\Collection 
     */
    public function getAuditoria() {
        return $this->auditoria;
    }

}
